草庐IT

C++:const char * 到 stringstream

全部标签

c++ - 无法用新值覆盖 stringstream 变量

stringwhatTime(intseconds){stringh,m,s,ans;stringstreamss;ss>h;ss.str("");ss>m;ss.str("");ss>s;return(h+":"+m+":"+s);}上述程序的输出格式为“some_value::”我也尝试过ss.str(std::string())和ss.str().clear()但即使这样也行不通。有人可以建议任何解决此问题的方法吗? 最佳答案 你已经correctly使用ss.str("")清空字符串缓冲区,但您还需要使用ss.clear()

c++ - 使用 stringstream 输入/输出一个 bool 值

这似乎是一个愚蠢的问题,但我被难住了。这是我的代码:intmain(){stringline,command;getline(cin,line);stringstreamlineStream(line);boolactive;lineStream>>active;cout无论我为事件输入什么,它总是打印出0。所以假设我的输入是true它会输出0和同样的东西为false。 最佳答案 您应该始终验证您的输入是否成功:您会发现它不是。您想在当前设置下尝试值1:if(lineStream>>active){std::cout如果你想能够输入

C++ std::stringstream/ostringstream 和 UTF 字符

我正在编写一个程序来处理一些数据,将其输出到一个.csv文件,然后编写一个GNUplot脚本,然后调用GNUplot来执行该脚本并创建一个具有相同名称(只是扩展名不同)的图像文件.文件名包含UTF字符(我相信是UTF-8?),例如°、φ和θ。当我使用g++4.4.7在Linux中编译和执行它时,所有这些都工作得很好。然后我更改了我的代码以在MicrosoftVisualStudio2008中编译,当我运行该程序时问题就开始了。我使用以下两段代码制作一个标准的文件名字符串(我只是为各种文件添加扩展名)打开流以写入文件(GNUplot脚本和.csv文件之间的唯一区别是扩展名//Genera

c++ - atof 和 stringstream 产生不同的结果

我一直在研究将float转换为人类可读格式并返回的问题。即一个字符串。我在使用stringstream时遇到了问题,发现atof产生了“更好”的结果。注意,在这种情况下我没有打印出数据,我使用调试器检索值:constchar*val="73.31";std::stringstreamss;ss>floatVal;//VALUEIS73.3100052floatVal=atof(val);//VALUEIS73.3099976对此可能有一个合理的解释。如果有人能启发我,我将不胜感激:)。 最佳答案 答案基于OP使用MSVC的假设ato

c++ - stringstream >> 十六进制的 uint8_t? C++

我对以下代码的输出感到困惑:uint8_tx=0,y=0x4a;std::stringstreamss;std::stringa="4a";ss>x;std::cout上面的输出是:52744焦344a4当我们更改时,将第一行替换为:uint16_tx=0,y=0x4a;输出变成:747474744a4aJ我想我明白会发生什么,但我不明白为什么会发生或我如何防止它/解决它。根据我的理解,std::hex修饰符由于x的类型而以某种方式被破坏,在技术层面上可能不完全正确,但它只是简单地写入它读取的第一个字符.背景:输入应该是一串十六进制数字,每一对代表一个字节(就像位图,除了字符串)。我希

c++ - 在 VC++14 中使用 std::basic_stringstream<char16_t> 时出错

我正在尝试做一些基本的char16_t字符串(u16string)处理,但遇到了一些麻烦。这个小程序:#include#includeintmain(){intfoo=65;std::basic_stringstreamss;ss创建错误:ErrorC2491'std::numpunct::id':definitionofdllimportstaticdatamembernotallowed.xlocnum259我已经在一些在线编译器上试过了,但是那里没有错误。感谢我能得到的任何帮助! 最佳答案 好的,它看起来像是VC++标准库或V

c++ - 您可以使用 stringstream 来安全地进行双向转换吗?

我遇到过使用字符串流将double型转换为字符串的情况。现在,我必须在其他地方取回该值(不,我无权访问原始double值),所以我必须解析格式化的字符串。当然,我也可以只用一个字符串流来读取它,但是这样安全吗?对于所有值,它总是有效吗?std::ostringstreamdoubleToString;doublemyDouble=3.14;doubleToString>newDouble;在上面的例子中,myDouble总是等于newDouble吗?注意:边际差异(0.00000000001)与我无关。 最佳答案 不,它并不总是有效

c++ - stringstream 和 nullptr 的子类

这段简单的代码可以用clang++编译,但不能用g++。里面有什么undefined吗?(需要模板函数才能让clang开心)GCC8.2.0(与-std=c++17一起使用)表示operator#include#include#includetemplateOut&&operator(out);}structA:std::stringstream{};intmain(){A{} 最佳答案 我相信这是由Bug51577引起的海湾合作委员会。您的代码导致std::__is_insertable&,std::nullptr_t&,void

c++ - stringstream 无符号输入验证

我正在编写程序的一部分,用于解析和验证程序控制台参数中的一些用户输入。为此,我选择使用stringstream,但遇到了读取无符号类型的问题。下一个模板用于从给定字符串中读取请求的类型:#include#include#includeusingstd::string;usingstd::stringstream;usingstd::cout;usingstd::endl;templateValueTyperead_value(strings){stringstreamss(s);ValueTyperes;ss>>res;if(ss.fail()ornotss.eof())throwst

使用 stringstream::str() 更新后,C++ stringstream 无法正常工作

我知道stringstream可以用stringstream::str()更新,但是如果之后我在stringstream中输入其他内容,它没有按预期工作。以下片段演示了该现象:#include#include#includeusingnamespacestd;intmain(){stringstreamss;//ostringstreamgivesthesameoutputss我希望得到输出Updatedstringsthelse但它实际上输出sthelsestring它似乎不是在当前字符串的末尾附加新输入的字符串(在我的例子中是Updatedstring),而是试图从头覆盖它。我的代